#include <gtk/gtk.h>
#include <jni.h>

/*Booleans as strings*/
#define BOOLEAN_STR_TRUE		"true"
#define BOOLEAN_STR_FALSE		"false"

void 		init_utils 			(JNIEnv *env);
jobject		get_jobject_for_GValue		(JNIEnv *env, GValue *val);
GType		get_gtype 			(int g_type_java);
GValue 		get_gvalue 			(GType type, const char *data);
void 		set_boolean_property		(GObject *obj, const gchar *property, gboolean b);
void 		set_gobject_property		(GObject *obj, GType property_type, const gchar *property, const gchar *value);
void 		set_string_property		(GtkWidget *widget, const gchar *property, const gchar *str);
GList* 		get_double_value_glist		(gdouble *arr, gint arr_len);
const char* 	read_str_from_glist		(gpointer data, int index);
gboolean 	widget_is			(GtkWidget *widget, const char *type_name);
gboolean 	str_to_boolean			(const char *boolStr);

/*Util functions for getting GtkEnums values from strings. */
int 		get_icon_size			(const char *idStr);
int 		get_pango_ellipsize_mode	(const char *idStr);
int 		get_gtk_justification		(const char *idStr);
int 		get_gtk_wrap			(const char *idStr);
int 		get_gtk_pos			(const char *idStr);
int 		get_gtk_resize_mode		(const char *idStr);
int 		get_gtk_progress_orientation	(int orient);
int 		get_gtk_attach_options		(const char *idStr);
int 		get_gtk_update_policy		(const char *idStr);
int 		get_gtk_widget_orientation 	(const char *idStr);
int 		get_get_toolbar_style 		(const char *idStr);
int 		get_get_buttonbox_style 	(const char *idStr);
int 		get_gtk_window_type		(const char *idStr);
int 		get_gtk_file_chooser_mode	(const char *idStr);
